The present invention relates to the field of data back-up and restoration, and more specifically, to back-up and restoration of data between volatile and flash memory.
When a main power fail is detected in a system, a pre-charged standby capacitor acts as a temporary power supply so that a controller device can copy data from volatile system memory into flash memory, thereby preserving it. On the resumption of main power, the backed up data can then be read from flash memory and restored back into the volatile memory. There is limited energy and therefore limited time to perform the back-up, so a method to improve performance is required.
Current back-up solutions deal with the main failure mode of flash devices which is the wearing out of blocks after many (˜3,000) erase/program cycles. Current solutions mitigate this by using wear-leveling algorithms that determine which blocks have been the most used and which will have a high level of wear, these most used blocks are then avoided. Despite the use of wear-leveling, this does not eliminate the possibility of encountering an unexpected page program error during the back-up. When such a “Grown Bad Block” is encountered, current solutions have no other recourse than to erase a fresh flash block in order to compensate for space lost. Erasure takes significant time and hence detriments the rate at which data can be backed up.
Wearing out of blocks is of particular concern in NAND flash technology, although this may also be of concern in NOR flash technology.